#ifndef LOMCLASSMANAGERHH
#define LOMCLASSMANAGERHH
#include "lom-typedefs.hh"
#include "lom-class.hh"
#include "lom-events.hh"
namespace lom
{
    class LomClassManager : public EventSender
    {
	TNameToClassMap classMap;

    public:
	virtual ~LomClassManager();
	//Flat namespaces.  Error if name collision
	//Also, once created the class is fixed
	virtual void addClass( const LomClass& cls );
	virtual const LomClass* getClass( const licada::TNameStr& name );
	virtual const TNameToClassMap& getClassMap();
	//Clears all classes out of class map
	virtual void reset();

    private:
	void internal_reset();
    };

}

#endif
